1. Field
This application relates generally to the field of updating software systems and more particularly to the field of managing and installing software patches.
2. Description of Related Art
Software manufactures often deliver robust software systems that operate relatively maintenance-free. However, software products can exhibit problems that need specific attention (e.g., compatibility problems, anomalous results, security vulnerabilities, etc.). Software manufacturers typically address these problems by releasing software patches, which include software code aimed at fixing troubled parts of a software system. Software patches can be electronically distributed and integrated into software systems in the field.
Because software manufacturers can release dozens of patches for large software systems, organizations can become overly burdened with managing and updating patches for several large software systems. Patch management systems help ease this burden. Patch management systems are designed to assist system administrators in procuring patches from software manufacturers and distributing patches to large numbers of computer systems. Patch management systems fall into at least two categories: 1) agent-based systems and 2) non-agent based systems. Agent-based patch management systems call for an agent program to be installed on each computer that is serviced by the system. Agents typically gather and send information about each computer to a central controller. The agents may also install and configure patches. Non-agent based systems do not have an agent on each computer; instead, non-agent systems carry-out tasks remotely.
Electronically distributing patches can be challenging, even for automated patch management systems. Although communications networks can achieve very high speeds, network congestion, transmission errors, connection failure, and other problems can significantly hamper electronic software patch distribution. For example, many file transmission protocols do not resume transmissions after failed connections. Consequently, if a connection fails before a patch management system delivers a patch, the entire process must be repeated from the beginning. As a result, poor connectivity typically stifles patch distribution.